home *** CD-ROM | disk | FTP | other *** search
/ BBS in a Box 4 / BBS in a Box - Macintosh - Volume IV (January 1992) (BBS in a Box).iso / Files / Prog / S / SUPERSPOOL MOD.TXT < prev    next >
Encoding:
Text File  |  1990-06-16  |  4.0 KB  |  80 lines  |  [TEXT/MACA]

  1. Users of WriteNow (any version) who also use SuperSpool 5.0df or SuperLaserSpool
  2. (any version) have probably experienced problems with the cursor flashing back 
  3. and forth between the I beam and the arrow.  Well I also have been bothered by 
  4. this problem and decided to find a cure.
  5.  
  6. NOTE:     For the rest of this document I will refer to SuperSpool 5.0df and
  7.           SuperLaserSpool(any version) as SLS.
  8.  
  9. During the process I also discovered that after a reboot or initial startup
  10. if a DA text print utility were used to print a file before an application
  11. had been used to print, the SLS would not print the document.
  12.  
  13. I also found that if you are running under Multifinder (only tested with 6.0.5)
  14. the system would crash when using a DA Print Utility.  During my investigation
  15. of this problem I found that during the initialization of SLS, the System Heap 
  16. was being corrupted.
  17.  
  18. To fix all of these problems you must modify two of the resources in SLS.
  19.  
  20. CAUTION:  ALWAYS MAKE MODIFICATIONS ON A BACKUP COPY OF YOUR PROGRAM AND
  21.           PERFORM A BACKUP OF YOUR HARD DISK BEFORE TESTING !!!
  22.  
  23. NOTE:     I have not tested these modifications on the commercial versions
  24.           of SLS, however, the code we are changing may be the same in 
  25.           those versions also.
  26.  
  27. The problem of the first print from a DA not printing is caused because the
  28. PrintErr word global at $0944 is not being cleared to $0000.  To correct this
  29. you must patch the INIT resource in SLS as follows:
  30.  
  31.      FIND      $B090     There is only one occurance near the end of the INIT
  32.                          resource.
  33.      Replace   CMP.L (A0),D0  $B090
  34.                RTS            $4E75
  35.                data           $0000
  36.  
  37.      With      CMP.L (A0),D0  $B090
  38.                BRA.S $+0002   $6002
  39.                DATA           $0000
  40.                CLR.L $0944    $42B8 0944
  41.                RTS            $4E75
  42.  
  43. Save the changes and test your DA Print Utility.
  44.  
  45. The problems with the system crash, the System Heap corruption and the flashing
  46. cursor in WriteNow are caused because SLS uses the global address $0948 to 
  47. store pointers it uses.  Unfortunately, SLS will also attempt to use the 
  48. Operating System DisposPtr procedure to get rid of the pointer but doesn't 
  49. check first to ensure that $0948 contains a valid pointer.  When the DisposPtr
  50. procedure is called with an invalid pointer, corruption to the master
  51. pointer list (which is kept in the System Heap) will occur.  The corruption will
  52. occur every time you boot the system if SLS is loaded, even if all other INITs 
  53. are removed.
  54.  
  55. To correct this problem we must patch the PATC resource in the SLS INIT so that
  56. SLS checks to see if $FFFF FFFF or a pointer is stored at $0948.  If we find
  57. $FFFF FFFF we must skip the call to the DisposPtr procedure.
  58.  
  59. The following patch will eliminate this problem.
  60.  
  61.      FIND                MOVE.L $00000948,-(A7)   $2F39 0000 0948
  62.      REPLACE IT WITH     BRA $+1562               $6000 1562
  63.  
  64. Then go to the end of the PATC resource and add the following code
  65.  
  66.      ADD                 MOVE.L $00000948,-(A7)   $2F39 0000 0948
  67.                          CMPI.L $FFFFFFFF,(A7)    $0C97 FFFF FFFF
  68.                          BEQ    $-1568            $6700 EA98
  69.                          BRA    $-1570            $6000 EA90
  70.  
  71. Save the changes and test your DA Print Utility and try WriteNow while printing
  72. and see that the cursor no longer flashes.  If you are familiar with Macsbug
  73. you may also wish to verify that the your System Heap checks ok.
  74.  
  75. I hope these patches work as well for other users that may have been 
  76. frustrated by these problems.
  77.  
  78. If you have any questions or problems implementing these patches you may
  79. contact me on GENIE.  My GE Mail address is 'A.FARNHAM'.